#define _CRT_SECURE_NO_WARNINGS
//#include<iostream>
//using namespace std;
//
//int main()
//{
//
//	int T, n, a[1000]={0}, max_x, min_y;
//	cin >> T;
//	while (T--)
//	{
//		cin >> n;
//		min_y = max_x = a[0];
//		int sum = a[0];
//		for (int i = 1; i < n; i++)
//		{
//			cin >> a[i];
//			max_x = max(max_x, a[i]);
//			min_y = min(min_y, a[i]);
//			sum += a[i];
//
//		}
//
//		double t = 0, s = sum / n;
//		for (int i = 0; i < n; i++)
//		{
//			t += (a[i] - sum / n) * (a[i] - sum / n);
//
//
//		}
//
//		printf("%d %0.3lf", max_x - min_y, t);
//
//	}
//
//
//
//	return 0;
//}


//#include<stdio.h>
//int main()
//{
//    int L, M, count = 0;
//    scanf("%d %d", &L, &M);
//    int a[L] = { 1 };
//
//    while (M) 
//    {
//        int temp1, temp2;
//        scanf("%d %d", &temp1, &temp2);
//        int i = 0;
//        for (i = temp1; i <= temp2; i++)
//        {
//
//            if (a[i] == 1)
//                a[i] = 0;
//
//
//        }
//
//        M--;
//
//    }
//
//    for (int i = 0; i <= L; i++)
//    {
//        if (a[i] == 1)
//            count++;
//
//    }
//
//    printf("%d\n", count);
//
//
//
//    return 0;
//}


#include<stdio.h>
int main()
{
    int L, M, count = 0;
    scanf("%d %d", &L, &M);
    int a[10000] = { 1 };

    while (M)
    {
        int temp1, temp2;
        scanf("%d %d", &temp1, &temp2);
        int i = 0;
        for (i = temp1; i <= temp2; i++)
        {

            if (a[i] == 1)
                a[i] = 0;


        }

        M--;

    }

    for (int i = 0; i <= L; i++)
    {
        if (a[i] == 1)
            count++;

    }

    printf("%d\n", count);



    return 0;
}